﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Cotizav.AccesoDatos
{
    public class CondicionDAO
    {
        public List<Entidades.Condicion> Listar(Util.ContextoDB ctx)
        {
            SqlCommand cmd = new SqlCommand("select * from CONDICION", ctx.GetConexion(), ctx.GetTx());
            DataTable dtCondicion = new DataTable();
            dtCondicion.Load(cmd.ExecuteReader());

            List<Entidades.Condicion> Lista = new List<Entidades.Condicion>();

            foreach (DataRow fila in dtCondicion.Rows)
            {
                Entidades.Condicion c = new Entidades.Condicion();

                c.IdCondicion = Int32.Parse(fila["ID"].ToString());
                c.IdTipoCondicion = !(fila["IDTIPOCONDICION"] is DBNull) ? Int32.Parse(fila["IDTIPOCONDICION"].ToString()) : new Nullable<int>();
                c.IdTipoCotizacion = !(fila["IDTIPOCOTIZACION"] is DBNull) ? Int32.Parse(fila["IDTIPOCOTIZACION"].ToString()) : new Nullable<int>();
                c.NombreCondicion = fila["NOMBRECONDICION"].ToString();
                c.StatusFlag = fila["STATUSFLAG"].ToString();
                c.Activo = Int32.Parse(fila["ACTIVO"].ToString());
                c.EsDefecto = Int32.Parse(fila["ESDEFECTO"].ToString());

                Lista.Add(c);
            }

            return Lista;
        }

        public DataTable ListarCondicion_TipoCondicion(Util.ContextoDB ctx, int? idTipoCondicion)
        {
            SqlCommand cmd = new SqlCommand("USP_LISTAR_CONDICION_TIPOCONDICION", ctx.GetConexion(), ctx.GetTx());
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@IdTipoCondicion", idTipoCondicion.HasValue ? idTipoCondicion.Value : (object)DBNull.Value);
            DataTable dtCondicionxTipo = new DataTable();
            dtCondicionxTipo.Load(cmd.ExecuteReader());

            return dtCondicionxTipo;
        }
    }
}
